BUSI 721
Jones Graduate School of Business
Rice University
Kerry Back
\[(1+r_m)((1+r_m)B - P) - P\]
This is \((1+r_m)^2 B - (1+r_m)P - P\), which is the future value of the amount borrowed minus the future value of the payments (as of the end of the second month).
Because the loan is eventually paid off, the future value of the amount borrowed equals the future value of the payments as of the end of the last month.
\[0 = \text{FV(Principal)} - \text{FV(Payments)}\]
Equivalently,
\[\text{FV(Principal)} = \text{FV(Payments)}\]
\[P \times \left(\frac{1}{1+r_m} + \frac{1}{(1+r_m)^2} + \cdots + \frac{1}{(1+r_m)^{12 \times T}}\right)\]
\[\text{AF} = \frac{1}{r_m}\left(1 - \frac{1}{(1+r_m)^{12 \times T}}\right)\]
\[\frac{\text{Balloon}}{(1+r_m)^{12 \times T}}\]
import numpy_financial as npf
nper = 30 * 12 # 30 year loan
principal = 400000 # borrow $400,000
pmt = -1500 # pay $1,500 per month
rate = 0.04 / 12 # annual rate is 4%
balloon = 0 # no balloonWe’ll calculate each of the last four, one at a time, given the other inputs.
# Question 1: what will my payment be?
PMT = npf.pmt(rate=rate, nper=nper, pv=principal, fv=balloon)
# Question 2: how much can I borrow?
PRINCIPAL = npf.pv(rate=rate, nper=nper, pmt=pmt, fv=balloon)
# Question 3: what will my rate be?
RATE = npf.rate(nper=nper, pv=principal, pmt=pmt, fv=balloon)
# And, how much of a balloon do I need?
BALLOON = npf.fv(rate=rate, nper=nper, pmt=pmt, pv=principal)If BALLOON>0, you overpaid the bank and should get money back.